home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / shells / scsh-0.4 / scsh-0 / scsh-0.4.2 / scsh / flock.c < prev    next >
C/C++ Source or Header  |  1995-11-04  |  2KB  |  54 lines

  1. /* This is an Scheme48/C interface file, 
  2. ** automatically generated by cig.
  3. */
  4.  
  5. #include <stdio.h>
  6. #include <stdlib.h> /* For malloc. */
  7. #include "libcig.h"
  8.  
  9. #include <sys/types.h>
  10. #include <unistd.h>
  11. #include <fcntl.h>
  12.  
  13. extern int errno;
  14.  
  15. /* Make sure foreign-function stubs interface to the C funs correctly: */
  16. #include "flock1.h"
  17.  
  18. #define errno_or_false(x) (((x) == -1) ? ENTER_FIXNUM(errno) : SCHFALSE)
  19.  
  20. scheme_value df_set_lock(long nargs, scheme_value *args)
  21. {
  22.     extern int set_lock(int , int , int , int , int , int );
  23.     scheme_value ret1;
  24.     int r1;
  25.  
  26.     cig_check_nargs(6, nargs, "set_lock");
  27.     r1 = set_lock(EXTRACT_FIXNUM(args[5]), EXTRACT_FIXNUM(args[4]), EXTRACT_FIXNUM(args[3]), EXTRACT_FIXNUM(args[2]), EXTRACT_FIXNUM(args[1]), EXTRACT_FIXNUM(args[0]));
  28.     ret1 = errno_or_false(r1);
  29.     return ret1;
  30.     }
  31.  
  32. scheme_value df_get_lock(long nargs, scheme_value *args)
  33. {
  34.     extern int get_lock(int , int , int , int , int , int , int *, int *, int *, int *, int *);
  35.     scheme_value ret1;
  36.     int r1;
  37.     int r2;
  38.     int r3;
  39.     int r4;
  40.     int r5;
  41.     int r6;
  42.  
  43.     cig_check_nargs(7, nargs, "get_lock");
  44.     r1 = get_lock(EXTRACT_FIXNUM(args[6]), EXTRACT_FIXNUM(args[5]), EXTRACT_FIXNUM(args[4]), EXTRACT_FIXNUM(args[3]), EXTRACT_FIXNUM(args[2]), EXTRACT_FIXNUM(args[1]), &r2, &r3, &r4, &r5, &r6);
  45.     ret1 = errno_or_false(r1);
  46.     VECTOR_REF(*args,0) = ENTER_FIXNUM(r2);
  47.     VECTOR_REF(*args,1) = ENTER_FIXNUM(r3);
  48.     VECTOR_REF(*args,2) = ENTER_FIXNUM(r4);
  49.     VECTOR_REF(*args,3) = ENTER_FIXNUM(r5);
  50.     VECTOR_REF(*args,4) = ENTER_FIXNUM(r6);
  51.     return ret1;
  52.     }
  53.  
  54.